package cn.kust.clock.service;

import cn.kust.clock.pojo.dto.LikeDTO;
import cn.kust.clock.pojo.entity.Like;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author YL
 * @data 2022/7/21 11:00
 **/
@Service
public interface LikeService extends IService<Like> {

    /**
     * 获取点赞总数
     * @param type 点赞类型
     * @param typeId 作品id
     * @return 点赞总数
     */
    Integer getLikeCountByTypeAndTypeId(Integer type, Long typeId);


    /**
     * 根据传入类型id查询热门贴前100
     * @param type id类型
     * @param pageNum 页码
     * @return 热门id列表
     */
    List<Long> selectHotOfHighLike(Integer type, Integer pageNum);



    /**
     * 根据传入的type_id, type, user_id 添加一条点赞记录
     * @param likeDTO 点赞详细DTO类
     * @return 受影响行数
     */
    Integer insertLikeHistory(LikeDTO likeDTO);

    /**
     * 删除一条点赞记录，即status设为0
     * @param id 点赞主键id
     * @return 受影响行数
     */
    Integer deleteLikeHistoryById(Long id);

    /**
     * 根据点赞id与点赞状态修改点赞状态
     * @param likeDTO 包括type typeId userId status
     * @return 受影响行数
     */
    Integer updateLikeHistoryByLikeDTO(LikeDTO likeDTO);

}
